package com.demo.token;

import com.demo.AppletConstant;
import com.demo.util.Utils;
import com.google.gson.Gson;

import java.util.HashMap;
import java.util.Map;


/**
 * 获取backendToken
 *
 */
public class BackendToken {

	public static void main(String[] args) {
		String resultStr = getBackendToken();
		System.out.println("-------获取backendToken信息:"+resultStr+"---------");
	}

	public static String getBackendToken() {

		//调用地址
		String url = "https://open.95516.com/open/access/1.0/backendToken";
		//拼装参数Map
		Map<String, String> params = new HashMap<String, String>(0);
		params.put("appId", AppletConstant.APP_ID);
		params.put("secret", AppletConstant.SECRET);

		//生成随即字符串
		String nonceStr = Utils.createNonceStr();
		params.put("nonceStr", nonceStr);
		
		//生成时间戳
		String timestamp = String.valueOf(System.currentTimeMillis()/1000);
		params.put("timestamp", timestamp);

		//签名 (appId,secret,nonceStr,timestamp)
		String value =  Utils.sortMap(params);//排序之后拼接
		String signature = Utils.sha256(value.getBytes());//进行加密签名
		params.put("signature", signature);
		//仅用于加密，不上送字段
		params.remove("secret");
		String param = new Gson().toJson(params);
		System.out.println("生成入参和签名："+param);
		//发送请求
		String resultStr = Utils.sendPostGson(url, params);
		return resultStr;
	}
	
}
